package com.cskaoyan._07constructor._02basic;

/**
 * @description:
 * @author: 景天
 * @date: 2023/2/4 11:17
 **/
/*
创建一个教师类，有课程和年龄两个属性，行为是上课。
现在我们需要创建以下对象：
1. 18岁的Java老师对象
2. 28岁的C++老师对象
3. 30岁的Python老师对象
4. ...



注意:
    构造器中还可以用this表示调用其它构造器，必须在构造方法的第一行
    语法： this(实参列表)
 */
public class Demo2 {
    public static void main(String[] args) {
        // 创建Teacher对象,使用构造方法优化
        //Teacher t1 = new Teacher("Java", 18);
        //t1.teach();
        //Teacher t2 = new Teacher("C++", 28);
        //t2.teach();
        //Teacher t3 = new Teacher("Python", 30);
        //t3.teach();

        Teacher t = new Teacher("张三", 20);
        t.teach();

    }
}


// 定义一个Teacher类
class Teacher {
    // 定义成员变量
    String course;
    int age;

    // 生成构造方法

    public Teacher(String course, int age) {
        // 通过this(实参列表)调用别的构造器
        // Call to 'this()' must be first statement in constructor body
        this("数据结构");
        this.course = course;
        this.age = age;
    }

    public Teacher() {
    }

    public Teacher(String course) {
        this.course = course;
    }

    // 定义成员方法
    public void teach() {
        System.out.println(age + "岁的" + course + "老师上课!");
    }

}